<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<!-- 因为 AJAX 库和通用工具的生态已经相当丰富，Vue 核心代码没有重复 -->
		<!-- 提供这些功能以保持精简。这也可以让你自由选择自己更熟悉的工具。 -->
		<script src="https://cdn.jsdelivr.net/npm/axios@0.12.0/dist/axios.min.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/lodash@4.13.1/lodash.min.js"></script>
	</head>
	<body>
		<div id="watch-example">
			<p>Ask a yes/no question
			<input v-model="question" />
			</p>
			<p>{{answer}}</p>
		</div>	
		<script type="text/javascript">
			/**
			 * 侦听器
			 */
			let app=new Vue({
				el:'#watch-example',
				data:{
					question:'',
					answer:'I cannot give you an answer until you ask a question!'
				},
				watch:{
					question:function(newQuestion,oldQuestion){
						this.answer='Waiting for you to stop typing...';
						this.debouncedGetAnswer();
					}
				},
				created:function(){
					    // `_.debounce` 是一个通过 Lodash 限制操作频率的函数。
					    // 在这个例子中，我们希望限制访问 yesno.wtf/api 的频率
					    // AJAX 请求直到用户输入完毕才会发出。想要了解更多关于
					    // `_.debounce` 函数 (及其近亲 `_.throttle`) 的知识，
					    // 请参考：https://lodash.com/docs#debounce
					this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
				},
				methods:{
					getAnswer:function(){
						if(this.question.indexOf('?')===-1){
							this.answer='Questions usually contain a question mark. ;-)';
							return;
						}
						this.answer='Thinking...';
						axios.get('https://yesno.wtf/api')
						.then(function(response){
							console.info(response);
							app.answer=_.capitalize(response.data.answer);
						})
						.catch(function(error){
							app.answer = 'Error! Could not reach the API. ' + error
						})
					}
				}
				
			});
			app.fullName2='hh kk';
		</script>	
		<style>
			.red{color: red;}
			.blue{color: blue;font-size: 100px;}
		</style>
	</body>
</html>
